/**   
 * Copyright © 2021 eSunny Info. Tech Ltd. All rights reserved.
 * 
 * 功能描述：
 * @Package: com.yl.staff.controller 
 * @author: Bai   
 * @date: 2021年1月22日 下午4:06:51 
 */
package com.yl.staff.controller;

import java.util.List;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.yl.staff.dao.MapSalaryMessage;
import com.yl.staff.model.BeanSalaryMessage;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;

/**   
* Copyright: Copyright (c) 2021 云邻信息科技
* 
* @ClassName: SalaryController.java
* @Description: 返回  salary （基本工资）标准数据
*
* @version: v1.0.0
* @author: Bai
* @date: 2021年1月22日 下午4:06:51 
*
* Modification History:<br>
* Date         Author          Version            Description
*---------------------------------------------------------*<br>
* 2021年1月22日     Bai             v1.0.0             新建<br>
* 
*/
/*
 * 功能列表：
* 	Date         Author          Method            				 Description
*	---------------------------------------------------------------------*<br>
*	2021年1月22日     Bai            findAll()        				                                 获取工资基本信息列表
* 	2021年1月22日     Bai            findById(int id)				                                            根据id获取工资基本信息
* 	2021年1月22日     Bai            findByStaffCode(String staffCode)           根据员工编号获取工资基本信息
*   2021年1月22日     Bai            findByWage(double wageBase)                 根据发放比例获取基本工资列表
*   2021年1月22日     Bai            addSalary(BeanSalaryMessage bsm)            添加基本工资信息
*   2021年1月22日     Bai            upSalary(BeanSalaryMessage bsm)             更新工资基本信息
* 
 * */
@RestController
@MapperScan("com.yl.staff.dao")
@Api(value = "基础数据接口", tags = "工资基本信息相关")
public class SalaryController {
	/*
	 * salary-message 数据接口对象
	 */
	@Autowired
	public MapSalaryMessage mapSalaryMessage;
	/**
	 * 
	* @Function: SalaryController.java
	* @Description: 获取工资基本信息列表
	*
	* @param:无
	* @return：List<BeanSalaryMessage> 基本工资历史记录集合 OR [] 空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月22日 下午10:29:42 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月22日     Bai              v1.0.0                                  新建 <br>
	 */
	@RequestMapping(value = "/salaryData",method = RequestMethod.GET)
	@ApiOperation(value = "获取工资基本信息列表")
	public List<BeanSalaryMessage> findAll(){
		return mapSalaryMessage.selectAll();
	}
	/**
	 * 
	* @Function: SalaryController.java
	* @Description: 根据id获取工资基本信息
	*
	* @param:int 数据编号
	* @return：BeanSalaryMessage 基本工资实体
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月22日 下午10:30:13 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月22日     Bai             v1.0.0                                   新建 <br>
	 */
	@RequestMapping(value = "/salaryDataById",method = RequestMethod.POST)
	@ApiOperation(value = "根据id获取工资基本信息")
	public BeanSalaryMessage findById(@ApiParam(name="id",value = "数据编号",required = true) @RequestParam(value = "id")int id) {
		return mapSalaryMessage.selectById(id);
	}
	/**
	 * 
	* @Function: SalaryController.java
	* @Description: 根据员工编号获取工资基本信息
	*
	* @param:String 员工编号
	* @return：BeanSalaryMessage 基本工资实体
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月22日 下午10:32:57 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月22日     Bai             v1.0.0                                   新建 <br>
	 */
	@RequestMapping(value = "/salaryDataByStaffCode",method = RequestMethod.POST)
	@ApiOperation(value = "根据员工编号获取工资基本信息")
	public BeanSalaryMessage findByStaffCode(@ApiParam(name="staffCode",value = "员工编号",required = true) @RequestParam(value = "staffCode") String staffCode) {
		return mapSalaryMessage.selectByStaffCode(staffCode);
	}
	/**
	 * 、
	* @Function: SalaryController.java
	* @Description: 根据发放比例获取基本工资列表
	*
	* @param: double 发放比例基数
	* @return：List<BeanSalaryMessage> 基本工资实体集合 OR []空集合
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月22日 下午10:34:34 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月22日     Bai             v1.0.0                                   新建 <br>
	 */
	@RequestMapping(value = "/salaryDataByWage",method = RequestMethod.POST)
	@ApiOperation(value = "根据发放比例获取基本工资列表")
	public List<BeanSalaryMessage> findByWage(@ApiParam(name="wageBase",value = "发放比例",required = true) @RequestParam(value = "wageBase") double wageBase){
		return mapSalaryMessage.selectByWage(wageBase);
	}
	/**
	 * 
	* @Function: SalaryController.java
	* @Description: 添加基本工资信息
	*
	* @param: BeanSalaryMessage 基本工资信息实体
	* @return： boolean true OR false
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月22日 下午10:37:30 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月22日     Bai             v1.0.0                                    新建 <br>
	 */
	@RequestMapping(value = "/addSalary",method = RequestMethod.POST)
	@ApiOperation(value = "添加基本工资信息")
	@ApiImplicitParams({
		@ApiImplicitParam(paramType="query",name="id",dataType="int",required=false,value="该数据无需填写"),
		@ApiImplicitParam(paramType="query",name="staffCode",dataType="String",required=true,value="员工编号"),
		@ApiImplicitParam(paramType="query",name="salaryAmount",dataType="String",required=true,value="工资金额"),
		@ApiImplicitParam(paramType="query",name="wageBase",dataType="String",required=true,value="工资发放基数"),
		@ApiImplicitParam(paramType="query",name="socialSecurityWithholding",dataType="String",required=true,value="社保企业代扣金额"),
	})
	public boolean addSalary(BeanSalaryMessage bsm) {
		return mapSalaryMessage.insertInto(bsm);
	}
	/**
	 * 
	* @Function: SalaryController.java
	* @Description: 更新基本工资信息
	*
	* @param:BeanSalaryMessage 基本工资实体信息
	* @return： boolean true OR false
	* @throws：异常描述
	*
	* @version: v1.0.0
	* @author: Bai
	* @date: 2021年1月22日 下午10:39:18 
	*
	* Modification History:<br>
	* Date         Author          Version            Description
	*---------------------------------------------------------*<br>
	* 2021年1月22日     Bai             v1.0.0                                   新建 <br>
	 */
	@RequestMapping(value = "/upSalary",method = RequestMethod.POST)
	@ApiOperation(value = "更新基本工资信息")
	@ApiImplicitParams({
		@ApiImplicitParam(paramType="query",name="id",dataType="int",required=true,value="数据编号"),
		@ApiImplicitParam(paramType="query",name="staffCode",dataType="String",required=false,value="该数据无需填写"),
		@ApiImplicitParam(paramType="query",name="salaryAmount",dataType="String",required=false,value="工资金额"),
		@ApiImplicitParam(paramType="query",name="wageBase",dataType="String",required=false,value="工资发放基数"),
		@ApiImplicitParam(paramType="query",name="socialSecurityWithholding",dataType="String",required=false,value="社保企业代扣金额"),
	})
	public boolean upSalary(BeanSalaryMessage bsm) {
		return mapSalaryMessage.updateSalary(bsm);
	}
	
}
